package com.junzhiit.nengji.api.service;

import java.util.List;

import javax.servlet.http.HttpServletRequest;

import com.junzhiit.nengji.api.web.vo.CreateOrderVO;
import com.junzhiit.nengji.api.web.vo.ResultVO;

public interface OrdersService {

	/**
	 * 
	 * TODO 查询用户订单
	 * @author PeterMo
	 * @time 2018年2月24日 下午4:33:03
	 * @return ResultVO
	 */
	public ResultVO findAllOrders(Integer pageNumber,Integer maxPageRow,Integer status,Integer type, String userId);
	
	/**
	 * 
	 * TODO 修改订单状态
	 * 
	 * @author Qjen
	 * @time 2018年2月10日 下午3:14:39
	 * @return ResultVO
	 *
	 */
	public ResultVO changeStatus(String id, Integer status);
	
	/**
	 * 
	 * TODO 订单信息(提交订单页面)
	 * @author PeterMo
	 * @time 2018年3月1日 下午2:11:40
	 * @return ResultVO
	 */
	public ResultVO findOrderInfo(String userId,String goods,String areaCode);
	
	/**
	 * TODO	订单信息(提交订单页面)-小程序
	 * @author DlamLiu
	 * @time 2018年6月28日 上午9:33:09
	 * @return ResultVO
	 * 
	 */
	public ResultVO findAppletsOrderInfo(String userId,String areaCode,List<String> carts);
	
	/**
	 * 
	 * TODO 订单信息(提交订单页面) -门店
	 * @author PeterMo
	 * @time 2018年3月7日 下午3:12:18
	 * @return ResultVO
	 */
	public ResultVO findShopOrderInfo(String userId, String goods);
	/**
	 * 
	 * TODO 查看线上订单详情
	 * 
	 * @author Qjen
	 * @time 2018年3月14日 下午1:53:20
	 * @return ResultVO
	 *
	 */
	public ResultVO orderInfo(String orderId);
	/**
	 * 
	 * TODO 线上商品支付成功
	 * 
	 * @author Qjen
	 * @time 2018年3月15日 下午3:07:03
	 * @return ResultVO
	 *
	 */
	public ResultVO onlinePaySuccess(String orderId);
	/**
	 * 
	 * TODO 线下商品支付成功/查看线下订单详情
	 * 
	 * @author Qjen
	 * @time 2018年3月15日 下午3:07:38
	 * @return ResultVO
	 *
	 */
	public ResultVO offlinePaySuccess(String orderNumber);
	
	/**
	 * 
	 * TODO 生成订单
	 * @author PeterMo
	 * @time 2018年3月15日 上午11:31:55
	 * @return ResultVO
	 */
	public ResultVO createOrder(HttpServletRequest request,CreateOrderVO order);
	
	/**
	 * 
	 * TODO 创建订单二维码
	 * @author PeterMo
	 * @time 2018年3月15日 上午11:31:55
	 * @return ResultVO
	 */
	public ResultVO createQRCode(String userId, String orderNumber);
	
	/**
	 * 
	 * TODO 首页统计订单数量
	 * @author PetetMo
	 * @time 2018年3月28日 下午3:23:46
	 * @return int
	 */
	public int orderTotalCount(String userId);
	

	/**
	 * 
	 * TODO 微信支付成功回调
	 * @author PetetMo
	 * @time 2018年3月28日 下午3:23:46
	 * @return String
	 */
	public String getWechatNotify(String xml);
	
	/**
	 * 
	 * TODO 微信退款成功回调
	 * @author PetetMo
	 * @time 2018年3月28日 下午3:23:46
	 * @return String
	 */
	public String refundNotify(String xml);
	
	/**
	 * 
	 * TODO 订单详情，微信支付
	 * @author PeterMo
	 * @time 2018年4月19日 下午1:57:46
	 * @return ResultVO
	 */
	public ResultVO wechatPay(HttpServletRequest request,String userId,String ordersId,String tradeType);
	
	/**
	 * 
	 * TODO 订单详情支付成功
	 * @author PeterMo
	 * @time 2018年4月19日 下午3:48:33
	 * @return ResultVO
	 */
	public ResultVO wechatPaySuccess(String shopOrderNumber);
	
	/**
	 * 
	 * TODO 物流追踪
	 * 
	 * @author Qjen
	 * @time 2018年3月16日 下午3:25:48
	 * @return ResultVO
	 *
	 */
	public ResultVO logisticsTrace(String ordersId);
	
	
	/**
	 * 
	 * TODO 根据店铺订单编号修改状态
	 * 
	 * @author Allen
	 * @time 2018年4月25日 早上2:31:48
	 * @return ResultVO
	 *
	 */
	public ResultVO editStatusByShopOrderNumber(String shopOrderNumber,Integer status);
	
	/**
	 * 
	 * TODO 线下订单支付失败真删除订单
	 * 
	 * @author Qjen
	 * @time 2018年4月27日 上午1:38:47
	 * @return ResultVO
	 *
	 */
	public ResultVO delOrders(String orderNumber);
	
	/**
	 * 
	 * TODO 重置交易历史表
	 * 
	 * @author PeterMo
	 * @time 2018年4月27日 上午1:38:47
	 * @return ResultVO
	 *
	 */
	public ResultVO resetPayHistory();
	
}
